#include <gtest/gtest.h>

#include "algorithm/Numbers.h"

/* 最大公约数，辗转相除法*/
TEST(Numbers, gcd1)
{
    Numbers* n = new Numbers();
    ASSERT_EQ(n->gcd1(10, 5), 5);
    ASSERT_EQ(n->gcd1(12, 15), 3);
    ASSERT_EQ(n->gcd1(12, 24), 12);
    ASSERT_EQ(n->gcd1(14, 21), 7);
}
/* 最大公约数，更相减损法*/
TEST(Numbers, gcd2)
{
    Numbers* n = new Numbers();
    ASSERT_EQ(n->gcd2(10, 5), 5);
    ASSERT_EQ(n->gcd2(12, 15), 3);
    ASSERT_EQ(n->gcd2(12, 24), 12);
    ASSERT_EQ(n->gcd2(14, 21), 7);
}
/* 最小公倍数 */
TEST(Numbers, lcm)
{
    Numbers* n = new Numbers();
    ASSERT_EQ(n->lcm(10, 5), 10);
    ASSERT_EQ(n->lcm(12, 15), 60);
    ASSERT_EQ(n->lcm(12, 24), 24);
    ASSERT_EQ(n->lcm(14, 21), 42);
}